package com.suse.service.admin.edu.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.suse.common.config.response.R;
import com.suse.service.admin.edu.model.entity.Teacher;
import com.suse.service.admin.edu.model.param.TeacherQueryParam;
import com.suse.service.admin.edu.model.param.TeacherSaveParam;
import com.suse.service.admin.edu.model.param.TeacherUpdateParam;

/**
 * <p>
 * 讲师 服务类
 * </p>
 *
 * @author 辜玉彬
 * @since 2022-08-09
 */
public interface TeacherService extends IService<Teacher> {

    /**
     * 获取讲师列表(分页)
     * @return R
     */
    R getTeacherTable(TeacherQueryParam teacherQueryParam);

    /**
     * 删除讲师(逻辑删除)
     * @param id ID
     * @return R
     */
    R removeTeacher(String id);

    /**
     * 添加讲师
     * @param teacherSaveParam 讲师添加参数
     * @return R
     */
    R save(TeacherSaveParam teacherSaveParam);

    /**
     * 修改讲师
     * @param teacherUpdateParam 讲师修改参数
     * @return R
     */
    R update(TeacherUpdateParam teacherUpdateParam);

    /**
     * 获取讲师下拉列表
     * @return R
     */
    R getTeacherSelect();

    /**
     * 批量删除讲师
     * @param ids ID数组
     * @return R
     */
    R removeBatchTeacher(String[] ids);

    /**
     * 通过关键字获取讲师名称列表
     * @param key 关键字
     * @return R
     */
    R getTeacherNameListByKey(String key);

    R getTeacherList();

    /**
     * 通过ID获取讲师信息和讲师课程
     * @param id ID
     * @return R
     */
    R getTeacherInfoAndCourseById(String id);
}
